Power consumption of electronic devices is an increasingly important factor in electronic device design. From a global perspective, energy demands of electronic devices occupy a sizable percentage of total energy usage due to large corporate data centers and the ubiquity of personal computing devices. Environmental concerns thus motivate efforts to reduce the power consumption of electronic devices to help conserve the earth's resources. From an individual perspective, less power consumption translates to lower energy bills. Furthermore, many personal computing devices are portable and powered by batteries. The less energy that is consumed by a portable battery-powered electronic device, the longer the portable device may operate without recharging the battery. Lower energy consumption also enables the use of smaller batteries and the adoption of thinner form factors, which means devices can be made more portable or versatile. Therefore, the popularity of portable electronic devices also motivates efforts to reduce the power consumption of electronic devices.
An electronic device consumes power if the device is coupled to a power source and is turned on. This is true for the entire electronic device, but it is also true for individual parts of the electronic device. Hence, power consumption can be reduced if parts of an electronic device are decoupled from power or turned off, even while other parts remain powered and turned on. Entire discrete components of an electronic device, such as a whole integrated circuit (IC) or a display screen, may be decoupled from power or turned off. Alternatively, selected parts of a discrete component may likewise be powered down. For example, a distinct processing entity of an integrated circuit chip, such as a processing core, may be selectively powered down for some period of time to reduce energy consumption.
Powering down a portion of an integrated circuit, such as a core, can save power and extend battery life. Powering down this portion is referred to herein as a “power collapse” or as creating a “power collapse period.” Unfortunately, implementing a power collapse of an integrated circuit core can create problems. For example, resuming a computing task using a core that was powered down takes time, which slows performance and can adversely impact a user experience. Operational data, which is data needed for an ongoing computing task, may also be lost if power is removed from certain types of computer memory. Losing operational data may force an application to restart or permanently damage user files, such as documents or pictures. To avoid a loss of operational data when a core of an integrated circuit is being powered down, the operational data can be stored in special memory that maintains data during a power collapse period. Some memory, such as flash memory, is capable of maintaining data when power is removed. Flash memory, however, is unsuitable for high-speed processing because access times are too slow.
Another type of memory that is capable of maintaining data during a power collapse period is called a retention flip-flop (RFF). Generally, flip-flops may be implemented as retention flip-flops or non-retention flip-flops. A flip-flop (FF), or flop, is a unit of computing memory that stores one bit of operational data. Flip-flops are relatively fast memory units, so integrated circuit designers employ flip-flops quite frequently across a chip. A typical flip-flop includes a master portion and a slave portion where data is migrated internally from the master portion to the slave portion. Clocked, or synchronous, flip-flops are configured to enable data migration such that data stored in the master portion is transferred to the slave portion responsive to a pulse of a clock signal.
Non-retention flip-flops are volatile memory that relinquish stored data if powered down, such as with a power collapse of a corresponding core that includes the non-retention flip-flops. Retention flip-flops, on the other hand, are capable of retaining data during a power collapse. In one approach, a retention flip-flop obtains power from a power rail that does not lose power during a power collapse event, so the retention flip-flop can therefore retain the one bit of operational data. Thus, retention flip-flops can support efforts to manage power consumption by facilitating the retention of operational data during a power collapse period without resorting to a slower memory type, such as flash memory.
Unfortunately, existing designs for retention flip-flops are not as robust as those for non-retention flip-flops. Retention flip-flops are more complicated than non-retention flip-flops due to the data retention feature. As a result, existing designs for the more-complicated retention flip-flop are not usable in certain accelerated processing environments in which non-retention flip-flops are capable of functioning. This deficiency prevents the power-conserving benefits of retention flip-flops from being employed in these accelerated processing environments.